UNet3+(UNet+++)论文解读 您所在的位置:网站首页 unet 论文 UNet3+(UNet+++)论文解读

UNet3+(UNet+++)论文解读

2024-04-12 02:03| 来源: 网络整理| 查看: 265

论文下载地址: 链接

UNET 3+: A FULL-SCALE CONNECTED UNET FOR MEDICAL IMAGE SEGMENTATIONABSTRACT

近年来,人们对基于深度学习的语义分割产生了浓厚的兴趣。UNet是一种采用编码-解码结构的深度学习网络,在医学图像分割中有着广泛的应用。结合多尺度特征是实现精确分割的重要因素之一。UNet++在UNet基础上进行改进,它是通过设计具有嵌套和密集跳过连接的体系结构。

玖零猴:U-Net+与FCN的区别+医学表现+网络详解+创新玖零猴:UNet++解读 + 它是如何对UNet改进 + 作者的研究态度和方式

然而,它没有从多尺度中表达足够的信息,仍然有很大的改进空间。在这篇论文中,我们提出了一种新颖的UNet 3+(UNet+++),它利用了全尺度的跳跃连接(skip connection)和深度监督(deep supervisions)。全尺度的跳跃连接把来自不同尺度特征图中的高级语义与低级语义结合;而深度监督则从多尺度聚合的特征图中学习层次表示。本文所提出的方法特别适用于不同规模的器官。除了提高精度外,所提出的UNet 3+还可以减少网络参数,提高计算效率。此外,我们还进一步提出了一种混合损失函数,并设计了一个classification-guided module来增强器官边界和减少非器官图像的过度分割,从而获得更准确的分割结果。在两个数据集上验证了该方法的有效性。代码可在ZJUGiveLab/UNet-Version中找到。

关键词:分割,多尺度跳跃连接,深度监督,混合损失函数,分类

1. INTRODUCTION

医学图像中器官的自动分割是许多临床应用的关键步骤。近年来,卷积神经网络(convolutional neural networks, CNNs)得到了极大的推动,发展出了多种分割模型,如全卷积神经网络(tional neural networks, FCNs)[1]、UNet[2]、PSPNet[3]和一系列DeepLab版本[4-6]。特别是基于编码-解码结构的UNet在医学图像分割中得到了广泛的应用。它使用跳跃连接来结合来自解码器的高级语义特征图和来自编码器的相应尺度的低级语义特征图。为了避免UNet中的纯跳跃连接在语义上的不相似特征的融合,UNet++[7]通过引入嵌套的和密集的跳跃连接进一步加强了这些连接,目的是减少编码器和解码器之间的语义差距。尽管取得了良好的性能,但这种方法仍然不能从多尺度中探索足够的信息。

在许多分割研究中,不同尺度的特征图展示着不同的信息。低层次特征图捕捉丰富的空间信息,能够突出器官的边界;而高级语义特征图则体现了器官所在的位置信息。然而,当逐步下采样和上采样时,这些微妙的信号可能会逐渐稀释时。为了充分利用多尺度特征,我们提出了一种新的基于u形的体系结构,命名为UNet 3+。在该网络结构中,我们重新设计了编码器和解码器之间的相互连接以及解码器之间的内部连接,以从全尺度捕获细粒度的细节和粗粒度的语义。为了进一步从全尺寸的聚合特征图中学习层次表示法,每个边的输出都与一个混合损失函数相连接,这有助于精确分割,特别是对于在医学图像体积中出现不同尺度的器官。除了提高精度外,我们还证明了所提出的UNet 3+可以减少网络参数,提高计算效率。

为了满足医学图像分割的准确性要求,我们进一步研究了如何有效地减少非器官图像的误报。现有的方法通过引入注意力机制[8]或在推理时执行预定义的细化方法(如CRF[4])来解决这个问题。不同于这些方法,我们提出了一个分类任务来预测输入图像是否有器官,为分割任务提供了指导。

总之,我们的主要贡献有四方面:(一)设计一个新的UNet 3+来充分利用多尺度特征,引入全尺度的skip connection,该连接结合了来自全尺度特征图的低级语义和高级语义,并且参数更少;(二)进行深度监督,从全面的聚合特征图中学习层次表示,优化了混合损失函数以增强器官边界;(三)提出分类指导模块,通过图像级分类联合训练,减少非器官图像的过度分割;(四)在肝脏和脾脏数据集上进行广泛的实验,UNet 3+的表现得到了提高并且超过了很多baselines。

2. METHODS

图1给出了UNet、UNet++和UNet 3+的简化概述。与UNet和UNet++相比,UNet 3+结合了多尺度特征,重新设计了跳跃连接,并利用多尺度的深度监督,UNet 3+提供更少的参数,但可以产生更准确的位置感知和边界增强的分割图。

2.1. Full-scale Skip Connections

所提出的全尺寸跳跃连接改变了编码器和解码器之间的互连以及解码器子网之间的内连接。无论是连接简单的UNet,还是连接紧密嵌套的UNet++,都缺乏从全尺度探索足够信息的能力,未能明确了解器官的位置和边界。为了弥补UNet和UNet++的缺陷,UNet 3+中的每一个解码器层都融合了来自编码器中的小尺度和同尺度的特征图,以及来自解码器的大尺度的特征图,这些特征图捕获了全尺度下的细粒度语义和粗粒度语义。

例如,图2说明了如何构造X_{De}^{3}特征图。与UNet类似,直接接收来自相同尺度编码器层的特征图X_{En}^{3}。但不同的是,跳跃连接不止上面一条。其中,上面两条跳跃连接通过不同的最大池化操作将较小尺度编码器层X_{En}^{1}X_{En}^{2}进行池化下采样,以便传递底层的低级语义信息。之所以要池化下采样,是因为要统一特征图的分辨率。从图中可知,X_{En}^{1}要缩小分辨率4倍,X_{En}^{2}要缩小分辨率2倍。另外的下面两条跳跃连接则通过双线性插值法对解码器中的X_{En}^{4}X_{En}^{5}进行上采用从而放大特征图的分辨率,从图中可知,X_{En}^{5}(X_{De}^{5})要放大分辨率4倍,X_{En}^{4}要放大分辨率2倍。统一完特征图之后,还不能结合它们,还需要统一特征图的数量,减少多余的信息。作者发现64个3×3大小的滤波器进行卷积表现效果较好,卷积后便产生64个通道的特征图(在之前CNN那篇文章中我也提到,卷积核的数量==输出特征图的数量,还不知道的童鞋可以点击下方链接进行学习)

玖零猴:卷积神经网络CNN(卷积池化、感受野、共享权重和偏置、特征图)

统一好了feature map的分辨率和数量后,就可以将浅层的精细信息与深层的语义信息进行特征融合了,关于特征融合一般有如下两种方法,FCN式的逐点相加或者U-Net式的通道维度拼接融合,本文是后者。这5个尺度融合后,便产生320个相同分辨率的特征图,然后再经过320个3×3大小的滤波器进行卷积 ,最后再经过BN + ReLU得到X_{De}^{3}

下面从公式上表示这种Full-scale Skip Connections,i表示沿着编码方向的第i个下采样层,N表示编码器的个数(文中有5个),那么特征图 X_{De}^{i} 的计算公式如下:

其中,函数C表示卷积操作,函数H表示特征聚合机制(一个卷积层+一个BN+一个ReLU),函数D和函数U分别表示上采样和下采样操作,[ ]表示通道维度拼接融合。

此外,值得一提的是UNet3+ 的参数少于UNet和UNet++,下面从公式上解释。编码器的结构三者都是一样的, X_{En}^{i} 都为 32 \times 2^{i} channels,即编码部分的参数都是一样多的。而UNet的解码部分和编码部分是对称的,因此X_{De}^{i} 都为 32 \times 2^{i} channels。UNet解码部分中第i个解码阶段的参数数量可以通过下面式子计算得到:

其中, D_{F} 表示卷积核的大小,函数d表示求出节点的深度。在UNet++中,它在每一条跳跃路径上都利用了dense conv block,它的计算公式如下:

正如大家所见,UNet++的参数量比UNet的更大,而在UNet3+中,每一个解码器由N个尺度连接所成,所以产生 64 \times N channels,计算公式如下:

解码部分的通道减少使得UNet3+的参数少于UNet和UNet++。

(PS:这些公式我不太能理解是怎么操作的?知道的小伙伴在下方评论下~)

2.2. Full-scale Deep Supervision

在UNet++中用到了深度监督(Deep supervision),如下图所示UNet++的深度监督,它对生成的全分辨率特征图(全分辨率=最后分割图的分辨率)进行深度监督。具体的实现操作就是在图中 X0,1 、X0,2、 X0,3 、X0,4后面加一个1x1的卷积核,相当于去监督每个level,或者说监督每个分支的UNet的输出。

为了从全尺度的聚合特征图中学习层次表示,UNet 3+进一步采用了全尺度深度监督。不同于UNet++,UNet 3+中每个解码器阶段都有一个侧输出,是金标准(ground truth,GT)进行监督。为了实现深度监督,每个解码器阶段的最后一层被送入一个普通的3×3卷积层,然后是一个双线性上采样和一个sigmoid函数。(这里的上采样是为了放大到全分辨率)

为了进一步增强器官的边界,我们提出了一个多尺度结构相似度指数[9]损失函数来赋予模糊边界更高的权重。受益于此,UNet 3+将关注模糊边界,区域分布差异越大,MS-SSIM值越高。从分割结果P和金标准G裁剪了两个相应的N×N大小的块,它们可以分别表示为 = \left\{ p_{j} :j=1,...,N^{2} \right\} = 1,…, N^{2}}和 g= \left\{ g_{j} :j=1,...,N^{2} \right\} 。定义p和g的MSSSIM损失函数为:

其中,M表示尺度的总数量, \mu_{p},\mu_{g} \sigma_{p},\sigma_{g} 分别是p、g的均值和方差, \sigma_{pg} 表示它们的协方差。 \beta_{m},\gamma_{m} 定义每个尺度中这两个部分的相对重要性,设置可以参考[9]。两个小的常量 C_{1} = 0.01^{2}C_{2} = 0.03^{2} 是避免被0除。在原文中,作者将尺度设置为5(和UNet、UNet++保持一致),基于[9]。

结合focal损失 函数[10], MS-SSIM损失函数和IoU损失函数[11],我们提出一种混合损失函数用于分割在三个不同层次像素级别分割、块分割、图像级别分割,它能捕获大尺度的和精细结构清晰的界限。混合分割损失被定义为:

2.3. Classification-guided Module (CGM)

在大多数医学图像分割中,非器官图像出现假阳性是不可避免的。它很有可能是由于来自背景的噪声信息停留在较浅的层次,导致过度分割的现象。为了实现更精确的分割,我们尝试通过增加一个额外的分类任务来解决这个问题,这个任务是为预测输入图像是否有器官而设计的。

如图3中所描绘的一样,最深层次的二维张量X_{En}^{5}经过一系列的操作包括dropout,卷积,maxpooling,sigmoid,最后有两个值代表有/没有器官的概率。利用最丰富的语义信息,分类结果可以进一步指导每一个切分侧边输出两个步骤。首先,在argmax函数的帮助下,将二维张量转化为{0,1}的单个输出,表示有/没有器官。随后,我们将单个分类输出与侧分割输出相乘。由于二值分类任务的简单性,该模块通过优化二值交叉熵损失函数[12],轻松获得准确的分类结果,实现了对非器官图像过分割的指导。

3. EXPERIMENTS AND RESULTS

reference

亲自体验,不错的两本书,适合入门~

()



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有